home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / microsoft_idl.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  9.4 KB  |  230 lines

  1. //Language: Microsoft IDL
  2. //Copyright (c) 1992-2002 Altium Limited             
  3. //All rights reserved.                               
  4. //http://www.dream-com.com                           
  5. //contact@dream-com.com                              
  6.  
  7. // states
  8. State=snormal
  9. State=sstring1
  10. State=sstring2
  11. State=sstring3
  12. State=scomment1
  13. State=scomment2
  14. State=sdirective
  15. // tokens
  16. Token=tnone
  17. Token=tstring
  18. Token=tcomment
  19. Token=tident
  20. Token=tinteger
  21. Token=tfloat
  22. Token=tresword
  23. Token=tassembler
  24. Token=turl
  25. Token=twhitespace
  26. Token=tdirective
  27. //delims
  28. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  29.  
  30. // reswords
  31. snormal '__int3264'          snormal tresword
  32. snormal '__int64'            snormal tresword
  33. snormal 'aggregatable'       snormal tresword
  34. snormal 'allocate'           snormal tresword
  35. snormal 'appobject'          snormal tresword
  36. snormal 'arrays'             snormal tresword
  37. snormal 'async'              snormal tresword
  38. snormal 'async_uuid'         snormal tresword
  39. snormal 'auto_handle'        snormal tresword
  40. snormal 'bindable'           snormal tresword
  41. snormal 'boolean'            snormal tresword
  42. snormal 'broadcast'          snormal tresword
  43. snormal 'byte'               snormal tresword
  44. snormal 'byte_count'         snormal tresword
  45. snormal 'call_as'            snormal tresword
  46. snormal 'callback'           snormal tresword
  47. snormal 'char'               snormal tresword
  48. snormal 'coclass'            snormal tresword
  49. snormal 'code'               snormal tresword
  50. snormal 'comm_status'        snormal tresword
  51. snormal 'const'              snormal tresword
  52. snormal 'context_handle'     snormal tresword
  53. snormal 'context_handle_noserialize' snormal tresword
  54. snormal 'context_handle_serialize'   snormal tresword
  55. snormal 'control'            snormal tresword
  56. snormal 'cpp_quote'          snormal tresword
  57. snormal 'custom'             snormal tresword
  58. snormal 'decode'             snormal tresword
  59. snormal 'default'            snormal tresword
  60. snormal 'defaultbind'        snormal tresword
  61. snormal 'defaultcollelem'    snormal tresword
  62. snormal 'defaultvalue'       snormal tresword
  63. snormal 'defaultvtable'      snormal tresword
  64. snormal 'dispinterface'      snormal tresword
  65. snormal 'displaybind'        snormal tresword
  66. snormal 'dllname'            snormal tresword
  67. snormal 'double'             snormal tresword
  68. snormal 'dual'               snormal tresword
  69. snormal 'enable_allocate'    snormal tresword
  70. snormal 'encode'             snormal tresword
  71. snormal 'endpoint'           snormal tresword
  72. snormal 'entry'              snormal tresword
  73. snormal 'enum'               snormal tresword
  74. snormal 'error_status_t'     snormal tresword
  75. snormal 'explicit_handle'    snormal tresword
  76. snormal 'fault_status'       snormal tresword
  77. snormal 'first_is'           snormal tresword
  78. snormal 'float'              snormal tresword
  79. snormal 'handle'             snormal tresword
  80. snormal 'handle_t'           snormal tresword
  81. snormal 'heap'               snormal tresword
  82. snormal 'helpcontext'        snormal tresword
  83. snormal 'helpfile'           snormal tresword
  84. snormal 'helpstring'         snormal tresword
  85. snormal 'helpstringcontext'  snormal tresword
  86. snormal 'helpstringdll'      snormal tresword
  87. snormal 'hidden'             snormal tresword
  88. snormal 'hyper'              snormal tresword
  89. snormal 'id'                 snormal tresword
  90. snormal 'idempotent'         snormal tresword
  91. snormal 'ignore'             snormal tresword
  92. snormal 'iid_is'             snormal tresword
  93. snormal 'immediatebind'      snormal tresword
  94. snormal 'implicit_handle'    snormal tresword
  95. snormal 'import'             snormal tresword
  96. snormal 'importlib'          snormal tresword
  97. snormal 'in'                 snormal tresword
  98. snormal 'in_line'            snormal tresword
  99. snormal 'include'            snormal tresword
  100. snormal 'int'                snormal tresword
  101. snormal 'interface'          snormal tresword
  102. snormal 'last_is'            snormal tresword
  103. snormal 'lcid'               snormal tresword
  104. snormal 'length_is'          snormal tresword
  105. snormal 'library'            snormal tresword
  106. snormal 'licensed'           snormal tresword
  107. snormal 'local'              snormal tresword
  108. snormal 'long'               snormal tresword
  109. snormal 'max_is'             snormal tresword
  110. snormal 'maybe'              snormal tresword
  111. snormal 'message'            snormal tresword
  112. snormal 'midl_pragma'        snormal tresword
  113. snormal 'midl_user_allocate' snormal tresword
  114. snormal 'midl_user_free'     snormal tresword
  115. snormal 'min_is'             snormal tresword
  116. snormal 'module'             snormal tresword
  117. snormal 'ms_union'           snormal tresword
  118. snormal 'ncacn_at_dsp'       snormal tresword
  119. snormal 'ncacn_dnet_nsp'     snormal tresword
  120. snormal 'ncacn_http'         snormal tresword
  121. snormal 'ncacn_ip_tcp'       snormal tresword
  122. snormal 'ncacn_nb_ipx'       snormal tresword
  123. snormal 'ncacn_nb_nb'        snormal tresword
  124. snormal 'ncacn_nb_tcp'       snormal tresword
  125. snormal 'ncacn_np'           snormal tresword
  126. snormal 'ncacn_spx'          snormal tresword
  127. snormal 'ncacn_vns_spp'      snormal tresword
  128. snormal 'ncadg_ip_udp'       snormal tresword
  129. snormal 'ncadg_ipx'          snormal tresword
  130. snormal 'ncadg_mq'           snormal tresword
  131. snormal 'ncalrpc'            snormal tresword
  132. snormal 'nocode'             snormal tresword
  133. snormal 'nonbrowsable'       snormal tresword
  134. snormal 'noncreatable'       snormal tresword
  135. snormal 'nonextensible'      snormal tresword
  136. snormal 'notify'             snormal tresword
  137. snormal 'object'             snormal tresword
  138. snormal 'odl'                snormal tresword
  139. snormal 'oleautomation'      snormal tresword
  140. snormal 'optimize'           snormal tresword
  141. snormal 'optional'           snormal tresword
  142. snormal 'out'                snormal tresword
  143. snormal 'out_of_line'        snormal tresword
  144. snormal 'pipe'               snormal tresword
  145. snormal 'pointer_default'    snormal tresword
  146. snormal 'propget'            snormal tresword
  147. snormal 'propput'            snormal tresword
  148. snormal 'propputref'         snormal tresword
  149. snormal 'ptr'                snormal tresword
  150. snormal 'public'             snormal tresword
  151. snormal 'range'              snormal tresword
  152. snormal 'readonly'           snormal tresword
  153. snormal 'ref'                snormal tresword
  154. snormal 'represent_as'       snormal tresword
  155. snormal 'requestedit'        snormal tresword
  156. snormal 'restricted'         snormal tresword
  157. snormal 'retval'             snormal tresword
  158. snormal 'shape'              snormal tresword
  159. snormal 'short'              snormal tresword
  160. snormal 'signed'             snormal tresword
  161. snormal 'size_is'            snormal tresword
  162. snormal 'small'              snormal tresword
  163. snormal 'source'             snormal tresword
  164. snormal 'strict_context_handle' snormal tresword
  165. snormal 'string'             snormal tresword
  166. snormal 'struct'             snormal tresword
  167. snormal 'switch'             snormal tresword
  168. snormal 'switch_is'          snormal tresword
  169. snormal 'switch_type'        snormal tresword
  170. snormal 'transmit_as'        snormal tresword
  171. snormal 'typedef'            snormal tresword
  172. snormal 'uidefault'          snormal tresword
  173. snormal 'union'              snormal tresword
  174. snormal 'unique'             snormal tresword
  175. snormal 'unsigned'           snormal tresword
  176. snormal 'user_marshal'       snormal tresword
  177. snormal 'usesgetlasterror'   snormal tresword
  178. //snormal 'uuid'               snormal tresword
  179. snormal 'v1_enum'            snormal tresword
  180. snormal 'vararg'             snormal tresword
  181. snormal 'version'            snormal tresword
  182. snormal 'void'               snormal tresword
  183. snormal 'warning'            snormal tresword
  184. snormal 'wchar_t'            snormal tresword
  185. snormal 'wire_marshal'       snormal tresword
  186.  
  187. // numbers
  188. snormal [1-9][0-9]*                            snormal  tinteger
  189. snormal \0x[0-9A_F]+                           snormal  tinteger
  190. snormal \0X[0-9A_F]+                           snormal  tinteger
  191. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  192. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  193.  
  194. //idents
  195. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  196.  
  197. //white space
  198. snormal #32*                      snormal   twhitespace
  199.  
  200. //comments
  201. snormal    //                      scomment1 tcomment
  202. scomment1  [#1-#255]*              snormal   tcomment
  203. scomment1  $                       snormal   tcomment
  204.  
  205. snormal   /\*                     scomment2 tcomment
  206. scomment2 [^\*]*                  scomment2 tcomment
  207. scomment2 \*[^/]                  scomment2 tcomment
  208. scomment3 [\*]*/                  snormal   tcomment
  209.  
  210. //strings
  211. snormal    \"                     sstring1   tstring
  212. sstring1   [^\"]*                 sstring1   tstring
  213. sstring1   \"                     snormal    tstring
  214. sstring1   $                      snormal    tstring
  215.  
  216. snormal    {uuid\(}               sstring2   tresword
  217. sstring2   [^\)]*                 sstring2   tresword
  218. sstring2   \)                     snormal    tresword
  219. sstring2   $                      snormal    tresword
  220.  
  221. snormal    {uuid#32\(}            sstring3   tresword
  222. sstring3   [^\)]*                 sstring3   tresword
  223. sstring3   \)                     snormal    tresword
  224. sstring3   $                      snormal    tresword
  225.  
  226. //directives
  227. snormal  \#                       sdirective tdirective
  228. sdirective [#1-#255]*             snormal    tdirective
  229. sdirective $                      snormal    tdirective
  230.